// svg2png.js
import sharp from 'sharp';
import fs from 'fs';
import path from 'path';

async function svgToPngSizes(svgFilePath, outputDir = null, sizes = [16, 32, 48, 96, 128]) {
    // 检查SVG文件是否存在
    if (!fs.existsSync(svgFilePath)) {
        console.error(`❌ 错误：找不到文件 ${svgFilePath}`);
        return;
    }

    // 设置输出目录
    if (!outputDir) {
        outputDir = path.dirname(svgFilePath);
    }

    // 确保输出目录存在
    if (!fs.existsSync(outputDir)) {
        fs.mkdirSync(outputDir, { recursive: true });
    }

    console.log(`🚀 开始转换 ${svgFilePath}...`);

    // 转换为各种尺寸
    for (const size of sizes) {
        const outputFile = path.join(outputDir, 'icon', `${size}.png`);
        
        try {
            await sharp(svgFilePath)
                .resize(size, size)
                .png({ quality: 100, compressionLevel: 6 })
                .toFile(outputFile);
            
            console.log(`✅ 成功生成: ${outputFile}`);
        } catch (error) {
            console.error(`❌ 生成 ${size}x${size} PNG 时出错:`, error.message);
        }
    }

    console.log('🎉 转换完成！');
}

// 使用示例
async function main() {
    const svgFile = 'public/wxt.svg'; // 替换为你的SVG文件路径
    await svgToPngSizes(svgFile);
}

main().catch(console.error);